package cn.gene.timeyan.search.webapi.service.impl;

import cn.gene.timeyan.common.restful.JsonPage;
import cn.gene.timeyan.coo.service.CooperationService;
import cn.gene.timeyan.pojo.coo.model.Cooperation;
import cn.gene.timeyan.pojo.search.entity.CooperationForElastic;
import cn.gene.timeyan.search.service.ICooperationforService;
import cn.gene.timeyan.search.webapi.repository.CooperationForElasticRepository;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * 互助*
 *
 * @author LWG
 * @date 2022/7/25 11:12
 * @since 1.0.0@gene.cn
 */
//@Slf4j
//@DubboService
//public class CooperationforServiceImpl implements ICooperationforService {
//    @DubboReference// Dubbo消费模块
//    private CooperationService cooperationService;
//    @Autowired
//    private CooperationForElasticRepository cooperationForElasticRepository;
//
//
//    @Override
//    public void loadCooperationByPage() {
//        int i=1;
//        int pages=0;
//        do{
//
//            JsonPage<Cooperation> cooperations=cooperationService.getCooperationByPage(i,2);
//            List<CooperationForElastic> esCooperations=new ArrayList<>();
//            // 遍历从数据库中查询出的cooperations
//            for(Cooperation cooperation:cooperations.getList()){
//                // 实例化一个ES的实体类
//                CooperationForElastic esCooperation=new CooperationForElastic();
//                // 将cooperation对象的同名属性赋值给esCooperation
//                BeanUtils.copyProperties(cooperation,esCooperation);
//                // 将赋好值的esCooperation对象,新增到esCooperation集合中
//                esCooperations.add(esCooperation);
//            }
//            // 利用SpringData框架提供的批量新增方法执行新增操作
//            cooperationForElasticRepository.saveAll(esCooperations);
//            i++;
//            pages=cooperations.getTotalPage();
//            log.info("成功新增第{}页数据",i);
//        }while (i<=pages);// 循环条件是当前页码不超过总页数
//    }
//
//    @Override
//    public String getKeyWord(String keyWord) {
//        return keyWord;
//    }
//
//    @Override
//    public JsonPage<CooperationForElastic> search(String keyword, Integer page, Integer pageSize) {
//        // SpringData分页,参数0表示第一页,需要将page-1才能查询正确页码
//        Page<CooperationForElastic> cooperation=cooperationForElasticRepository.querySearchs(
//                keyword, PageRequest.of(page-1,pageSize));
//        // 业务逻辑层要求返回JsonPage类型,我们目前最简单的办法就是实例化JsonPage对象给它赋值
//        JsonPage<CooperationForElastic> jsonPage=new JsonPage<>();
//        // 当前页码
//        jsonPage.setPage(page);
//        jsonPage.setPageSize(pageSize);
//        // 赋值总页数
//        jsonPage.setTotalPage(cooperation.getTotalPages());
//        // 赋值总条数
//
//        jsonPage.setTotal(cooperation.getTotalElements());
//        // 赋值分页数据
//        jsonPage.setList(cooperation.getContent());
//        // 别忘了返回JsonPage!!!
//        return jsonPage;
//    }
//}
